//package com.yuncheng.oaApi.controller;
//
//import java.math.BigDecimal;
//import java.util.*;
//import javax.annotation.Resource;
//
//import cn.hutool.core.collection.CollectionUtil;
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.yuncheng.oaApi.constant.CommonFlowConstant;
//import com.yuncheng.oaApi.constant.FlowNodeConstant;
//import com.yuncheng.oaApi.constant.NkConstant;
//import com.yuncheng.oaApi.entity.NkRsHtspjl;
//import com.yuncheng.oaApi.entity.OaFjzyk;
//import com.yuncheng.oaApi.entity.OaXzswsp;
//import com.yuncheng.exception.BusinessException;
//import com.yuncheng.oaApi.mapper.NkRsHtglMapper;
//import com.yuncheng.oaApi.service.INkRsHtspjlService;
//import com.yuncheng.oaApi.service.IOaFjzykService;
//import com.yuncheng.oaApi.service.IOaXzswspService;
//import com.yuncheng.oaApi.service.impl.NkRsHtspjlServiceImpl;
//import com.yuncheng.vo.HttpResult;
//import com.yuncheng.annotation.AutoLog;
//import com.yuncheng.utils.I18nUtil;
//import com.yuncheng.common.base.controller.BaseController;
//import com.yuncheng.oaApi.entity.NkRsHtgl;
//import com.yuncheng.oaApi.service.INkRsHtglService;
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import com.yuncheng.vo.NkHtStatVo;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.web.bind.annotation.*;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.context.annotation.Lazy;
//
///**
// * @Description: 内控-合同管理
// * @Author: lhb
// * @Date: 2023-11-27
// * @Version: V1.0
// */
//@Api(tags = "NK_内控-合同管理接口")
//@RestController
//@RequestMapping("/api/spzx-oa/nkRsHtgl")
//public class NkRsHtglController extends BaseController<NkRsHtgl, INkRsHtglService> {
//
//    private static final Logger log = LoggerFactory.getLogger(NkRsHtglController.class);
//
//    @Resource
//    private INkRsHtglService nkRsHtglService;
//
//    @Resource
//    @Lazy
//    private IOaFjzykService oaFjzykService;
//
//    @Resource
//    @Lazy
//    private NkRsHtglMapper nkRsHtglMapper;
//
//    @Resource
//    @Lazy
//    private IOaXzswspService oaXzswspService;
//
//    @Resource
//    @Lazy
//    private INkRsHtspjlService nkRsHtspjlService;
//
//
//    @AutoLog(value = "内控-合同管理-分页列表查询")
//    @ApiOperation(value = "内控-合同管理-分页列表查询")
//    @GetMapping(value = "/list")
//    public HttpResult<?> queryPageList(NkRsHtgl nkRsHtgl,
//                                       @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
//                                       @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
//        LambdaQueryWrapper<NkRsHtgl> queryWrapper = new LambdaQueryWrapper<>();
//
//        //合同名称
//        queryWrapper.like(StringUtils.isNotBlank(nkRsHtgl.getFhtmc()),NkRsHtgl::getFhtmc,nkRsHtgl.getFhtmc());
//        //合同类型
//        queryWrapper.eq(StringUtils.isNotBlank(nkRsHtgl.getFhtlx()),NkRsHtgl::getFhtlx,nkRsHtgl.getFhtlx());
//       //签订公司
//        queryWrapper.like(StringUtils.isNotBlank(nkRsHtgl.getQdgs()),NkRsHtgl::getQdgs,nkRsHtgl.getQdgs());
//        //合同编号
//        queryWrapper.like(StringUtils.isNotBlank(nkRsHtgl.getFhtbh()),NkRsHtgl::getFhtbh,nkRsHtgl.getFhtbh());
//
//        queryWrapper.eq(StringUtils.isNotBlank(nkRsHtgl.getSrzclx()),NkRsHtgl::getSrzclx,nkRsHtgl.getSrzclx());
//
//        queryWrapper.like(StringUtils.isNotBlank(nkRsHtgl.getFhtzt()),NkRsHtgl::getFhtzt,nkRsHtgl.getFhtzt());
//
//        Page<NkRsHtgl> page = new Page<>(pageNo, pageSize);
//        IPage<NkRsHtgl> pageList = nkRsHtglService.page(page, queryWrapper);
//
//        return HttpResult.ok(pageList);
//    }
//
//    @AutoLog(value = "内控-查询所有的流程结束的行政事务")
//    @ApiOperation(value = "内控-查询所有的流程结束的行政事务")
//    @GetMapping(value = "/lcEndList")
//    public HttpResult<?> lcEndList(String xzswid){
//
//        List<OaXzswsp> oaXzswspList = oaXzswspService.list(new LambdaQueryWrapper<OaXzswsp>().eq(OaXzswsp::getFlczt, FlowNodeConstant.HJMC_LCJS)
//                                                        .eq(StringUtils.isNotBlank(xzswid),OaXzswsp::getId,xzswid));
//        HashMap map = new HashMap();
//        map.put("records",oaXzswspList);
//        return HttpResult.ok(map);
//    }
//
//    @AutoLog(value = "内控-根据pid查询绑定的行政事务")
//    @ApiOperation(value = "内控-根据pid查询绑定的行政事务")
//    @GetMapping(value = "/pidByList")
//    public HttpResult<?> pidByList(String pid){
//        if (StringUtils.isBlank(pid)){
//            throw new BusinessException("无法查询到id，请联系管理员");
//        }
//        NkRsHtspjl nkRsHtspjl = nkRsHtspjlService.getById(pid);
//
//        if (StringUtils.isBlank(nkRsHtspjl.getFhtid())){
//            throw new BusinessException("查询不到申请记录，请联系管理员");
//        }
//        NkRsHtgl nkRsHtgl = nkRsHtglService.getById(nkRsHtspjl.getFhtid());
//
//        if (StringUtils.isBlank(nkRsHtgl.getFxzswid())){
//            throw new BusinessException("查询不到合同记录，请联系管理员");
//        }
//        OaXzswsp oaXzswsp = oaXzswspService.getById(nkRsHtgl.getFxzswid());
//
//        return HttpResult.ok(oaXzswsp);
//
//    }
//
//
//
//
//
//
//    @AutoLog(value = "内控-合同附件查询")
//    @ApiOperation(value = "内控-合同附件查询")
//    @GetMapping(value = "/fjlist")
//    public HttpResult<?> fjList(String id){
//        List<OaFjzyk> list  = new ArrayList();
//
//        if (StringUtils.isNotBlank(id)){
//            list = oaFjzykService.list(new LambdaQueryWrapper<OaFjzyk>().eq(OaFjzyk::getFoaid, id));
//        }
//        return HttpResult.ok(list);
//    }
//
//    @AutoLog(value = "计算合同剩余金额")
//    @ApiOperation(value = "计算合同剩余金额")
//    @GetMapping(value = "jsHtRemainingAmount")
//    public HttpResult jsHtRemainingAmount(@RequestParam(value = "id",defaultValue = "")String id){
//        Map result = new HashMap();
//        String amount = "0";
//        if(StringUtils.isNotBlank(id)){
//            NkRsHtgl ht = nkRsHtglService.getById(id);
//            if (ht != null){
//                BigDecimal qdjr = new BigDecimal(Optional.ofNullable(ht.getFhtje()).orElseGet(()->"0"));
//                BigDecimal zfjr = new BigDecimal(Optional.ofNullable(ht.getFzfje()).orElseGet(() -> "0"));
//
//                BigDecimal amountBd = qdjr.subtract(zfjr);
//                amount = amountBd.toString();
//            }
//        }
//
//        result.put("amount", amount);
//        return HttpResult.ok(result);
//    }
//
//    @AutoLog(value = "合同统计")
//    @ApiOperation(value = "合同统计")
//    @GetMapping(value = "queryHtStatPageList")
//    public HttpResult queryHtStatPageList(NkHtStatVo query,
//                                          @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
//                                          @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize){
//        Page<NkHtStatVo> page = new Page<>(pageNo, pageSize);
//        query.setFlczt(CommonFlowConstant.FLOW_LCJS);
//        Page<NkHtStatVo> pageList = nkRsHtglMapper.findHtStatPageList(page, query);
//
//        return HttpResult.ok(pageList);
//    }
//
//    @AutoLog(value = "内控-合同登记-添加")
//    @ApiOperation(value = "内控-合同登记-添加")
//    @PostMapping(value = "/add")
//    public HttpResult<?> add(@RequestBody NkRsHtgl nkRsHtgl) {
//        HttpResult<String> result = new HttpResult(true);
//
//        if (StringUtils.isBlank(nkRsHtgl.getFhtbh())){
//            throw new BusinessException("合同编号为空！");
//        }
//        if (StringUtils.isBlank(nkRsHtgl.getFhtmc())){
//            throw new BusinessException("合同名称为空！");
//        }
//        if (StringUtils.isBlank(nkRsHtgl.getFhtlx())){
//            throw new BusinessException("合同类型为空！");
//        }
//        if (StringUtils.isBlank(nkRsHtgl.getQdgs())){
//            throw new BusinessException("签订公司为空！");
//        }
//        if (StringUtils.isBlank(nkRsHtgl.getFhtje())){
//            throw new BusinessException("合同金额为空！");
//        }
//        BigDecimal htje = new BigDecimal(nkRsHtgl.getFhtje());
//        if (!(htje.compareTo(new BigDecimal("0")) == 1)){
//            throw new BusinessException("合同金额必须大于0！");
//        }
//        nkRsHtgl.setFzfje(Optional.ofNullable(nkRsHtgl.getFzfje()).orElseGet(()->"0"));
//        nkRsHtgl.setFhtzt(Optional.ofNullable(nkRsHtgl.getFhtzt()).orElseGet(()->NkConstant.HTZT_DZF));
//        nkRsHtgl.setFhtzfjd("0");
//
//        nkRsHtglService.save(nkRsHtgl);
//        result.setResult(nkRsHtgl.getId());
//        result.setMessage(I18nUtil.message("save.success"));
//        return result;
//    }
//
//
//    @AutoLog(value = "内控-合同管理-编辑")
//    @ApiOperation(value = "内控-合同管理-编辑")
//    @PutMapping(value = "/edit")
//    public HttpResult<?> edit(@RequestBody NkRsHtgl nkRsHtgl) {
//        nkRsHtglService.updateById(nkRsHtgl);
//        return HttpResult.ok(I18nUtil.message("update.success"));
//    }
//
//
//    @AutoLog(value = "内控-合同管理-通过id删除")
//    @ApiOperation(value = "内控-合同管理-通过id删除")
//    @DeleteMapping(value = "/delete")
//    public HttpResult<?> delete(@RequestParam("id") String id) {
//        if (StringUtils.isBlank(id)){
//            throw new BusinessException("参数为空！");
//        }
//
//        NkRsHtgl ht = nkRsHtglService.getById(id);
//        if (ht == null){
//            throw new BusinessException("没有相匹配的合同数据！");
//        }
//        String msg = "";
//        // 判断是否已经在使用
//        if (StringUtils.isBlank(ht.getFhtzt()) || !ht.getFhtzt().equals(NkConstant.HTZT_DZF)){
//
//            if (StringUtils.isBlank(msg)){
//                msg += "/";
//            }
//
//            msg += "编号["+ht.getFhtbh()+"]名称为["+ht.getFhtmc()+"]，已经在使用无权限删除！";
//        }
//
//        if (StringUtils.isNotBlank(msg)){
//            throw new BusinessException(msg);
//        }
//
//        nkRsHtglService.removeById(id);
//        return HttpResult.ok(I18nUtil.message("delete.success"));
//    }
//
//    @AutoLog(value = "内控-合同管理-批量删除")
//    @ApiOperation(value = "内控-合同管理-批量删除")
//    @DeleteMapping(value = "/deleteBatch")
//    public HttpResult<?> deleteBatch(@RequestParam("ids") String ids) {
//        if (StringUtils.isBlank(ids)){
//            throw new BusinessException("参数为空！");
//        }
//        List<NkRsHtgl> htList = nkRsHtglService.listByIds(Arrays.asList(ids.split(",")));
//        if (CollectionUtil.isNotEmpty(htList)){
//            String msg = "";
//            for (NkRsHtgl ht : htList){
//
//                // 判断是否已经在使用
//                if (StringUtils.isBlank(ht.getFhtzt()) || !ht.getFhtzt().equals(NkConstant.HTZT_DZF)){
//
//                    if (StringUtils.isBlank(msg)){
//                        msg += "/";
//                    }
//
//                    msg += "编号["+ht.getFhtbh()+"]名称为["+ht.getFhtmc()+"]，已经在使用无权限删除！";
//                    continue;
//                }
//                nkRsHtglService.removeById(ht.getId());
//            }
//
//            if (StringUtils.isNotBlank(msg)){
//                throw new BusinessException(msg);
//            }
//        }
//
//        return HttpResult.ok(I18nUtil.message("delete.success"));
//    }
//
//
//    @AutoLog(value = "内控-合同管理-通过id查询")
//    @ApiOperation(value = "内控-合同管理-通过id查询")
//    @GetMapping(value = "/queryById")
//    public HttpResult<?> queryById(@RequestParam("id") String id) {
//        NkRsHtgl nkRsHtgl = nkRsHtglService.getById(id);
//        return HttpResult.ok(nkRsHtgl);
//    }
//
//}
